package java_0308;

import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;


public class Add {
    /**
     * 1.给定一个3乘以3的二维数组，里面的数据随机生成。分别求出两个对角线的元素之和
     */
//    public static void main(String[] args) {
//        Random random=new Random();
//        ThreadLocalRandom random1=ThreadLocalRandom.current();
//        int[][] ret=new int[3][3];
//        //给数组放元素
//        for (int i = 0; i < 3; i++) {
//            for (int j = 0; j < 3; j++) {
////                ret[i][j]=random.nextInt(100);
//                ret[i][j]=random1.nextInt(0,Integer.MAX_VALUE);
//            }
//        }
//        //分别求两个对角线元素和
//        //对角线元素满足条件，i==j和i+j = array.length-1;
//        int sum1=0;
//        int sum2=0;
//        for (int i = 0; i < ret.length; i++) {
//            for (int j = 0; j < ret[i].length; j++) {
//                if(i==j){
//                    //左对角线元素
//                    sum1+=ret[i][j];
//                }
//                if(i+j==ret.length-1){
//                    sum2+=ret[i][j];
//                }
//            }
//        }
//        System.out.println(sum1);
//        System.out.println(sum2);
//    }

    /**
     *一对相亲数是指：甲的约数之和等于乙，乙的约数之和等于甲。求1000以内的相亲数
     * 只要整除了就是约数。8的约数，1,2,4,8.但是本题中，计算的时候不用考虑数字本身。
     * 分析：
     * 所以，我们可以先求数字甲n的约数和，假设为sumN;反过来再去求sumN的约数和是不是等于数字乙N，满足这个表达式，那么就是相亲数。
     */
//    public static void main(String[] args) {
//        for (int i = 0; i < 1000; i++) {
//            if(isNum(i)){
//                System.out.println(i+" ");
//            }
//        }
//    }
//
//    private static boolean isNum(int num) {
//        //判断是否是相亲数:甲的约数之和等于乙，乙的约数之和等于甲
//        //只要能整除就是约数
//        int sum=0;
//        for (int i = 1; i < num; i++) {
//            if(num%i==0){
//                sum+=i;
//            }
//        }
//        //循环完求出num的约数和sum。再求sum约数和
//        int res=0;
//        for (int i = 1; i <= sum; i++) {
//            if(sum%i==0){
//                res+=i;
//            }
//        }
//        //求出sum约数和了
//        if(sum==num){
//            return  true;
//        }else{
//            return false;
//        }
//    }
    /**
     * 3.求一维数组所有元素和
     */
    public static void main(String[] args) {
        int[] array1 = {1,3,5,7,6};
        System.out.println(arraySum(array1,array1.length));
    }

    private static int arraySum(int[] array1, int length) {
        if(length==1){
            return array1[0];
        }
        return array1[length-1]+arraySum(array1,length-1);
    }

//    private static int arraySum(int[] array1, int length) {
//        int sum=0;
//        for (int i = 0; i < length; i++) {
//            sum+=array1[i];
//        }
//        return sum;
//    }
}
